System and method for voice actuated configuration of a controlling device

ABSTRACT

A speech recognition engine is provided voice data indicative of at least a brand of a target appliance. The speech recognition engine uses the voice data indicative of at least a brand of the target appliance to identify within a library of codesets at least one codeset that is cross-referenced to the brand of the target appliance. The at least one codeset so identified is then caused to be provisioned to the controlling device for use in commanding functional operations of the target appliance.

RELATED APPLICATION INFORMATION

This application is a continuation of U.S. application Ser. No.15/785,803, filed on Oct. 17, 2017, which application is a continuationof U.S. application Ser. No. 13/298,629, filed on Nov. 17, 2011, thedisclosures of which are incorporated herein by reference in theirentirety.

BACKGROUND

This following generally relates to remote control systems and, moreparticularly, to a system and method for setting up and configuring acontrolling device such as a universal remote control to commandfunctions of one or more types of remotely controllable appliances ofone or more manufacturers. Exemplary types of appliances include, butare not limited to televisions, AV receivers, cable or satellite set topboxes (STBs), DVD players, digital video recorders (DVRs), thermostats,game consoles, etc.

Manufacturers typically provide a remote control with an appliance and,as such, different appliance types of different manufacturers are oftencommanded with different remote controls. To minimize the number ofindividual remote controls a user requires, universal remote controlshave been developed. Accordingly, universal remote controls and/oruniversal remote control application software for commanding variousfunctions of various types of appliances of various manufacturers havebecome quite widespread. By way of example, universal remote controlsare described in commonly assigned U.S. Pat. Nos. 4,959,810, 5,255,313and 5,552,917.

In a common method of setting up a universal remote control, codes forcommanding functions of an appliance are learned from a remote controlsupplied by the manufacturer with that appliance. The learned codes,which are stored within the universal remote control, are then availablefor subsequent transmission to the appliance. Alternatively, codes forcommanding functions of appliances of various types and variousmanufacturers may be preprogrammed into the universal remote control.The user may then interact with the universal remote control to identifyto the universal remote control which appliance(s) the user desires tocommand, i.e., the user manually enters an appliance or brand code,usually obtained from a tabulation in a printed user manual or the like,into the universal remote control and the universal remote controlutilizes that user provided identity information to access thosepreprogrammed codes that are appropriate for commanding the identifiedappliance(s). In this regard, examples of known methods for performingan initial setup of an universal remote control may be found in, forexample, the above mentioned U.S. Pat. No. 4,959,810 as well as U.S.Pat. No. 5,614,906, entitled “Method for Selecting a Remote ControlCommand Set,” or U.S. Pat. No. 4,703,359 entitled “Universal RemoteControl Unit with Model Identification Capability,” each of which isincorporated herein by reference in its entirety.

As an alternative to printed tabulations and the like, various methodshave been proposed based on the use of a personal computer to accesslistings of appliance identification data and/or command codes. Examplesof such methods may be found in U.S. Pat. No. 7,612,685 entitled “Onlineremote control configuration system” or co-pending U.S. patentapplication Ser. No. 12/490,978 entitled “System and Method toFacilitate Configuration of a Universal Controlling Device,” both ofwhich are incorporated herein by reference in their entirety.

Furthermore, in certain instances the user of a controlling device,whether universal or not, may be provided with the ability to customizethe functionality of the controlling device, for example by rearrangingwhich functions are assigned to which keys, by adding lesser-used keyfunctions which were not part of the default command set provisioned onthe controlling device, etc. Once again, such operations may beperformed by entering data obtained from a tabulation in a printed usermanual, as described for example in U.S. Pat. No. 5,515,052 entitled“Universal Remote Control with Function Synthesis,” or by utilizing apersonal computer and/or an Internet based service such as described forexample in U.S. Pat. No. 7,093,003 entitled “System and Method forUpgrading the Remote Control Functionality of a Device,” both patents ofcommon ownership and incorporated herein by reference in their entirety.

While such known methods do work for their intended purpose, it has beenseen that the process of setting up and configuring a controlling devicesuch as a universal remote control may remain demanding, exacting, andgenerally frustrating for many users. For example, user manuals or otherdocuments containing setup codes and entry instructions may be lost ormisplaced, or may be superseded as brand and/or model names evolve orcontrollable functions are added; a personal computer and/or Internetaccess may not be readily available at the location of the appliances tobe controlled; etc. Accordingly, a need exists for a simplified and moreuser friendly system and method for conveniently setting up andconfiguring a controlling device.

SUMMARY

The subject disclosure generally relates to controlling devices such asuniversal remote controls, and more specifically to improved methods forsetup and configuration of such devices, i.e., the identification andselection of appropriate sets of command data to be associated with thespecific appliances to be controlled. To this end, a controlling devicemay be provisioned with means to receive voice input from a user, e.g.,a microphone, such that when placed in a setup mode the controllingdevice may solicit spoken appliance descriptive information, for examplebrand and model number, to be processed by a speech recognition systemin order to identify the appliance to be controlled and the command datato which it is responsive. As will become apparent, speech recognitionand command data identification processing may be performed on thecontrolling device itself; on a locally situated device such a personalcomputer or a set top box; remotely at a Web server; or a combinationthereof as appropriate for a particular embodiment. Additionally, incertain embodiments the speech recognition capability may be extended toallow a user to further refine the controlling device configuration, forexample by assigning extended functionality to certain keys, verballyaccessing infrequently used functions, defining activities, etc.

A better understanding of the objects, advantages, features, propertiesand relationships of the invention claimed hereinafter will be obtainedfrom the following detailed description and accompanying drawings whichset forth illustrative embodiments and which are indicative of thevarious ways in which the principles of the invention may be employed.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the various aspects of the inventionclaimed, reference may be had to preferred embodiments shown in theattached drawings in which:

FIGS. 1a and 1b illustrate exemplary systems in which controllingdevices in accordance with the instant invention may utilized;

FIG. 2 illustrates a block diagram of exemplary components of thecontrolling device of FIG. 1 a;

FIG. 3 illustrates a block diagram of exemplary components of thecontrolling device of FIG. 1 b;

FIG. 4 illustrates an exemplary method for configuration of acontrolling device to match an appliance to be controlled using spokeninput;

FIGS. 5a and 5b further illustrate exemplary systems in whichcontrolling devices may be configured in accordance with the method ofFIG. 4;

FIG. 6 illustrates an exemplary method for accessing extended functionsof a configured appliance using spoken input; and

FIGS. 7a and 7b illustrate the structure of a brand name, model number,and command code database suitable for use in conjunction with themethods of FIGS. 4 and 6.

DETAILED DESCRIPTION

Turning now to FIG. 1a , there is illustrated an exemplary system inwhich a controlling device 100 is configured to control variouscontrollable appliances, such as a television 102, a set top box (“STB”)104, a DVD player 106 and an AV receiver 108. As is known in the art,the controlling device 100 may be capable of transmitting commands tothe appliances, using any convenient IR, RF, Point-to-Point, ornetworked protocol 120, to cause the appliances to perform operationalfunctions. While illustrated in the context of a television 102, STB104, DVD player 106 and AV receiver 108, it is to be understood thatcontrollable appliances may include, but need not be limited to,televisions, VCRs, DVRs, DVD players, cable or satellite converterset-top boxes (“STBs”), amplifiers, CD players, game consoles, homelighting, drapery, fans, HVAC systems, thermostats, personal computers,etc.

FIG. 1b illustrates a second exemplary system which is similar to thatof FIG. 1a , but where controlling device functionality may be embodiedin a user-installed application software module (generally known in theart as an “app”) resident in a smart device 110, which device maycomprise any of a smart phone, a tablet computer, a portable emaildevice, an e-book, a hand-held games and/or game controller, a portablemedia player, etc. As will be appreciated, in this instance the physicalcapability for transmitting appliance command signals 120 may beprovided by an external adapter, for example as described in U.S. Pat.No. 6,931,231 entitled “Infrared Generator From Audio Signal Source,” bya relay device, for example as described in co-pending U.S. patentapplication Ser. No. 13/071,661 entitled “System and Method forFacilitating Appliance Control Via a Smart Device,” or may be built intothe smart device, for example as described in co-pending U.S. patentapplication Ser. No. 13/043,915 entitled “System and Method forProvision of Infrared Signaling in Smart Phones,” all of which patentsand patent applications are incorporated herein by reference in theirentirety.

With reference to FIG. 2, a first exemplary embodiment of a controllingdevice 100 for use in commanding the functional operations of one ormore appliances may include, as needed for a particular application, aprocessor 200 coupled to a ROM memory 204, a RAM memory 205, a keymatrix 216 (e.g., hard keys, soft keys such as a touch sensitive surfaceoverlaid on a liquid crystal (LCD), and/or an electroluminescent (EL)display), transmission circuit(s) and/or transceiver circuit(s) 210(e.g., IR and/or RF), a non-volatile read/write memory 206, a means 202to provide feedback to the user (e.g., one or more LEDs, illuminablekeys, display, buzzer, voice synthesizer with associated speaker, and/orthe like), an input/output port 218 such as a serial interface, USBport, modem, Zigbee, WiFi, or Bluetooth transceiver, etc., a powersource 220 such as a battery, and clock and timer logic 212 withassociated crystal or resonator 214 and speech input means comprising amicrophone 224 and associated circuitry 222 for example an analog todigital converter, speech digitizer, etc., as known in the art.

As will be understood by those skilled in the art, some or all of thememories 204, 205, 206 may include executable instructions(collectively, the controlling device program memory) that are intendedto be executed by the processor 200 to control the operation of thecontrolling device 100, as well as data which serves to define thenecessary control protocols and command values for use in transmittingcommand signals to controllable appliances (collectively, the commanddata). In this manner, the processor 200 may be programmed to controlthe various electronic components within the controlling device 100,e.g., to monitor the key matrix 216, to cause the transmission ofsignals, etc. The non-volatile read/write memory 206, for example anEEPROM, battery-backed up RAM, FLASH, Smart Card, memory stick, or thelike, may additionally be provided to store setup data and parameters asnecessary. While the memory 204 is illustrated and described as a ROMmemory, memory 204 can also be comprised of any type of readable media,such as ROM, FLASH, EEPROM, or the like. Preferably, the memories 204and 206 are non-volatile or battery-backed such that data is notrequired to be reloaded after battery changes. In addition, the memories204, 205 and 206 may take the form of a chip, a hard disk, a magneticdisk, an optical disk, and/or the like. Still further, it will beappreciated that some or all of the illustrated memory devices may bephysically combined (for example, a single FLASH memory may be logicallypartitioned into different portions to support the functionality ofmemories 204 and 206 respectively), and/or may be physicallyincorporated within the same IC chip as the microprocessor 200 (a socalled “microcontroller”) and, as such, they are shown separately inFIG. 2 only for the sake of clarity.

To cause the controlling device 100 to perform an action, thecontrolling device 100 is adapted to be responsive to events, such as asensed user interaction with the key matrix 216, sensed sound input,etc. In response to an event, appropriate instructions within theprogram memory (hereafter the “controlling device operating program”)may be executed. For example, when a command function key is actuated onthe controlling device 100, the controlling device 100 may retrieve fromthe command data stored in memory 204, 205, 206 a command value andcontrol protocol corresponding to the actuated function key and, wherenecessary, current device mode and transmit that command to an intendedtarget appliance, e.g., STB 106, in a format recognizable by thatappliance to thereby control one or more functional operations of thatappliance. It will be appreciated that the controlling device operatingprogram can be used not only to cause the transmission of commandsand/or data to the appliances, but also to perform local operations.While not limiting, local operations that may be performed by thecontrolling device 100 may include displaying information/data, favoritechannel setup, macro key setup, function key relocation, etc. Examplesof local operations can be found in U.S. Pat. Nos. 5,481,256, 5,959,751,and 6,014,092.

In some embodiments, controlling device 100 may be of the universaltype, that is provisioned with a library comprising a multiplicity ofcommand codes and protocols suitable for controlling variousappliances—also referred to as sets of command data or codesets. In suchcases, for selecting sets of command data to be associated with thespecific appliances to be controlled (hereafter referred to as a setupprocedure), data may be provided to the controlling device 100 thatserves to identify each intended target appliance by its make, and/ormodel, and/or type. In the embodiment presented, this data may be in theform of spoken input as will be described in greater detail hereafter.Such data allows the controlling device 100 to identify the appropriatecommand data set within the library of command data that is to be usedto transmit recognizable commands in formats appropriate for suchidentified appliances. The library of command data may represent aplurality of controllable appliances of different types and manufacture,a plurality of controllable appliances of the same type but differentmanufacture, a plurality of appliances of the same manufacture butdifferent type or model, etc., or any combination thereof as appropriatefor a given embodiment.

In an alternative embodiment controlling device functionality may takethe form of a software app resident in a smart device 110. Arepresentative smart device, illustrated in FIG. 3 in the form of asmart phone, may include as needed for a particular application,processing means 300 which may comprise both an application processingsection 302 and an RF/DSP processing section 304; an LCD display 306; akeypad 308 which may comprise physical keys, touch keys overlaying LCD306, or a combination thereof; a subscriber identification module (SIM)card 310; memory means 312 which may comprise ROM, RAM, Flash, or anycombination thereof; WiFi and/or Bluetooth wireless interface(s) 314; awireless telephony interface 316; power management circuitry 318 withassociated battery 320; a USB interface 322 and connector 324; an audiomanagement system 326 with associated microphone 328, speaker 330, andheadphone jack 332; built-in or add on IR communication means comprisinga transmitter and/or receiver 336 with associated IR output diode(s)334; and various optional accessory features 338 such as a digitalcamera, GPS, accelerometer, etc.

It is known to offer an app for download and installation into memory312 which app may serve to allow use of the smart phone to transmitcommands suitable for operation of entertainment and other appliances.Such an app may draw on a library of codesets suitable for commandingthe functional operations of various types of appliances of multiplemanufactures and/or models, i.e., a library of codesets fora so-called“universal” controller, as well known in the art. As appropriate for aparticular embodiment this library may be resident on the smart deviceitself, either downloaded as part of or in conjunction with the app orpreinstalled in memory 312 or in a separate self-contained commandtransmitter; may be located externally at a local PC or remote serverdevice accessible to smart device 110 for the download of only thosecode sets necessary for operation of the configured appliances; or maybe located in a command relay device such as described in the previouslyreferenced U.S. patent application Ser. No. 13/043,915.

In either of these exemplary embodiments, during setup and configurationof the controlling device, a user my provide appliance identificationvia spoken input as will now be described in conjunction with theflowchart of FIG. 4. Since the steps involved are similar for eitherembodiment, it is to be understood that in the following descriptions,except where otherwise indicated the term “controlling device” isintended to encompass, mutatis mutandis, exemplary controlling device100, exemplary controlling device 110, and all equivalents thereof.

Initially, at step 400 a user may place the controlling device into asetup mode, for example by activating a “setup” key, by selecting thatitem from a displayed menu of choices, by a voice command, or any othermethod as appropriate for a particular embodiment. In this context, itwill be appreciated that in certain embodiments wherein a controllingdevice, such as for example controlling device 100′ of FIG. 5a , may beenabled to communicate bidirectionally 504 with an appliance such as forexample STB 104, the abovementioned menu displays and any other userprompts, messages, etc., may be presented on a connected appliance suchas for example TV 102.

Once the setup mode has been initiated, at step 402 the controllingdevice may prompt the user to speak the brand name of the appliance tobe added to the configuration of the controlling device. This andsubsequent prompts for voice input may take the form of an illuminatedLED and/or “speak” symbol, a displayed text or image, a synthesizedspoken message (e.g., where controlling device user feedback means 202comprises speech synthesis means and a speaker, or where a smart deviceapp has access to speaker 330), etc. The resulting spoken syllables maybe digitized and presented to a speech recognition means for processingand comparison to a phonetic database of brand names which have beencross referenced to appropriate codesets within the library of codesets.As appropriate for a particular embodiment, all or part of said speechrecognition processing may be performed by programming on thecontrolling device itself; or, with reference to FIGS. 5a and 5b , maybe performed by programming on a local appliance such as STB 104 whichis in bidirectional communication 504 with the controlling device; ormay be performed by programming resident on a remote server 500accessible via a network 502 such as the Internet or PSTN. In the lattercase, access to such network may be via an intermediary appliance suchas STB 104, illustrated at 506, or may be via a local network connection508, such as WiFi or Bluetooth, through a gateway device such as arouter (not illustrated). As will be appreciated, in those embodimentswhere the captured voice input data is to be forwarded to anotherdevice, in some embodiments it may be subject to initial preprocessing,compression, etc., by programming in the controlling device.

At step 404, if the speech recognition means is unable to uniquelyidentify the desired brand, step 402 may be repeated in order to solicitadditional identifying information from the user. For example, a usermay be presented with a short list of possible brand identities fromwhich to select; may be prompted to spell the first few characters ofthe brand name; may be requested to speak the name of a geographicregion or a service provider; etc.; as appropriate to facilitate theidentification process.

Once a brand has been successfully identified, at step 406 the user maybe prompted to provide spoken appliance type and/or model numberinformation for processing and comparison to a phonetic database ofmodel number data which is applicable to the identified brand ifnecessary, e.g., to further narrow down the codeset choices. As will beappreciated, in many manufacturer model numbering systems the appliancetype may be inferred from an assigned model number, and accordingly incertain embodiments the appliance type may not be initially requested.However in instances where a model number alone may be insufficient, orin embodiments where availability of an appliance type may facilitatemodel number recognition processing by providing a context to limit theextent of the database search, an appliance type may comprise part ofthe initial request. At step 408 the spoken syllables comprising themodel identity may be processed and compared to a phonetic database ofmodel numbers by the speech recognition means which have also been crossreferenced to codesets within a library of codesets. If the initiallyprovided model information is insufficient to uniquely identify theappliance, at step 410 additional user input may be solicited. Forexample, a user may be requested to indicate a device type if this wasnot already provided; to provide geographic region or service provider;to select from a series of displayed images of appliances and/or OEMremote controls; etc. As an alternative to, or in conjunction with theabove, in some embodiments a group of test codes each corresponding to apredetermined command function (for example “power”) in one of severaldifferent command data formats may be downloaded into or otherwiseindicated to the controlling device, to allow a user to determine byexperimentation which one of a group of possible command codesets isapplicable to his appliance, for example as described in the previouslyreferenced U.S. Pat. No. 5,614,906 entitled “Method for Selecting aRemote Control Command Set.”

Once a suitable command code set has been uniquely identified, at step412 the desired setup data may be communicated to the controlling deviceoperating program or remote control app, as appropriate for the devicebeing configured. Depending upon the particular embodiment,communication of the setup data may comprise downloading of a completeset of command code data into the controlling device from anoff-platform database of codesets located for example on local appliancesuch as STB 104 or on a remote server 500; or may comprise simplycommunicating a set up number or other pointer to an entry in a databaseof command codes already preloaded into the memory of the controllingdevice. Thereafter, at step 414 the user may be prompted to indicate ifthey wish to configure additional appliances. If so, the process may berepeated starting at step 402. If not, the current applianceconfiguration session is complete and the controlling device exits setupmode.

In an additional aspect of the invention, once the appliances to becontrolled have been identified to a controlling device as describedabove or by any other convenient method, a user may be enabled tofurther customize individual key functionality via voice input. In thisregard, since many OEM remote controls may include a large number of keyfunctions some of which may be infrequently used or of interest only tocertain classes of users, the initial setup configuration of manyuniversal controlling devices may include only a subset of the totalfunctionality of an appliance's OEM remote, comprising the most commonlyused functions. By way of example, Tables 1a and 1b below illustrate aspecific set of remote control commands which may be supported by aparticular model of DVD player. Table 1a lists those commonly usedcommands which may be included in the default key configuration of atypical universal controlling device, while Table 1b lists additional or“extended” functions which may be unique to this particular DVD playerand/or may perform seldom used operations.

TABLE 1a DVD player standard functions Power on Fast forward Menu Poweroff Fast reverse Up/down Digits 0-9 Skip forward Left/right Play Skipreverse Select Pause Stop Open/close

TABLE 1b DVD player brand xxxx model yyyy extended functions Angle HDMImode Repeat A-B Marker Search Audio Picture adjust Setup Dimmer Puredirect Source Disc layer Random Zoom

Nevertheless, a user of a universal controlling device may from time totime desire to issue appliance commands corresponding to one or more ofthe extended functions supported by his particular appliance model.Various methods have been proposed to enable a user to customizeuniversal controlling device key functionality by adding availableextended functions not initially available as part of the default setup.By way of example, descriptions of such methods may be found in U.S.Pat. No. 5,515,052 entitled “Universal Remote Control with FunctionSynthesis” or 7,093,003 entitled “System and Method for Upgrading theRemote Control Functionality of a Device,” both of common ownership andincorporated herein by reference in their entirety.

Further, since different appliance manufacturers may use differingterminology for the same function, a generic function label used for akey on a universal controlling device may not always correspond to theterm used by the original equipment manufacturer to reference thatfunction. By way of example, Table 2 below lists some of the knownsynonyms for the command function which may be used to cause a devicesuch as a TV set or STB to tune from a currently selected channel to theimmediately previous channel, which function may simply be labeled withthe generic term “Last” on the keypad of a universal controlling device.

TABLE 2 “Last channel” synonyms Alternate channel Go back Quick viewBack Jump Recall Channel recall Last channel Return Channel returnPrevious channel Revue Flashback Swap R-Tune

Accordingly, in addition to facilitating the initial configuration ofappliances to be controlled, in some embodiments the speech recognitioncapabilities described herein may be further adapted to provide aconvenient and rapid method for a user of a controlling device to accessspecific functions of his configured appliance via voice commands. Aswill become apparent, such extended function access may be for thepurpose of issuing an immediate one-time command transmission, or may befor the purpose of assigning the identified command function to a key ofthe controlling device for future appliance operating convenience.

Turning now to the flowchart of FIG. 6, an exemplary extended functionaccess method may be initiated at steps 600 or 602. As before,initiation may take the form of a key activation, menu selection, spokeninput, etc., as appropriate for a particular embodiment. Initiation atstep 600 may be for the purpose of issuing a one-time or immediateappliance command, while initiation at step 602 may be for the purposeof assigning an appliance command function to a key of the controllingdevice. Step 602 may thus include an indication of the particularcontrolling device key which is to reconfigured. Regardless of thepurpose, at step 604 the user may be prompted to speak the desiredfunction name. As before this prompt may take the form of an illuminatedLED and/or “speak” symbol, a displayed text or image, etc., asappropriate. The resulting spoken syllables may be digitized andpresented to a speech recognition means for processing and comparison toa phonetic database of command function names which have been crossreferenced to command data within a codeset that is applicable to theparticular appliance model currently configured, for example asillustrated in Table 1b above. As with the methods described previously,all or part of said speech recognition processing may be performed byprogramming on the controlling device itself; may be performed byprogramming on a local appliance which is in bidirectional communicationwith the controlling device; or may be performed by programming residenton a remote server accessible via a network such as the Internet orPSTN.

At step 604 it may be determined if the spoken input has sufficed touniquely identify the desired command function. If not at step 608additional information may be solicited from the user to assist inidentifying the desired command function. By way of example, a user maybe requested to indicate a geographic region or the approximate age ofan appliance; may be presented with a display of short list of functionnames from which to select; may be request to provide synonym(s) for thedesired command function: etc. Once the desired function has beenuniquely identified, at step 610 the indicated command code data may beprovisioned to the controlling device. As appropriate for the particularimplementation, such provisioning may comprise downloading the dataitself, supply of a pointer to an entry in a local database, etc.Thereafter, at step 612 it may be determined if the request was for aone-time command transmission (i.e., originated by step 600) or forassignment of the function to a key (i.e., originated by step 602). Iffor a one-time transmission, at step 614 the provisioned data may beutilized to transmit the desired command to the target appliance. If forassignment of the function to a key, at step 616 the new function may beassigned to the indicated key, for example using an entry in a keyreassignment table such as described in U.S. Pat. No. 6,195,033 entitled“Key Mover,” of common ownership and incorporated herein by reference inits entirety.

With reference to FIG. 7a , the structure of an exemplary appliancecommand code database for use in conjunction with the methods of FIGS. 5and 6 may comprise a series of brand records 702 each of which points toa group of model records 704 specific to that brand, each model recordin turn pointing to a codeset record 706 containing command code data,function labels, etc., which are applicable to that specific brand andmodel of appliance. It will be appreciated that since multiple models ofa manufacturer's appliance may share the same OEM remote control designand/or command code set, there may not be a one-to-one correspondencebetween model number records 704 and codeset records 706.

Each brand record 702 may comprise a brand name entry comprising a textrepresentation 710 of the brand name together with a phoneticrepresentation 712 of that brand name comprising digitized phonemetemplates, cepstral coefficients or vectors, etc., as appropriate forthe speech recognition algorithms of a particular embodiment. Brandrecords may also include an entry 714 which may identify a geographicregion, together with its phonetic representation 716. By way ofexample, region information may be requested from a user if a spokenbrand name is not immediately identified at step 404 of FIG. 4, and usedto filter search results when multiple possible matches were initiallyidentified. Alternatively, in some embodiments where the database is tobe used to support multiple territories, multiple entries may be createdfor a particular brand name in order to cater for regional differencesin accent or pronunciation, in which case the region information may beused to preselect those entries which are to participate in a search. Aswill be appreciated, in embodiments which are Internet server basedregion information may be derivable from the IP address associated withthe requesting device, and thus in those cases the region identificationstep may be performed automatically. Region information might also beautomatically gathered using the GPS capabilities of a smart device, thenetwork tower information of a network on which a smart device resides,etc. The final entry of a brand name record may take the form of apointer 718 to a group of model number records comprising appliancemodels which correspond to the indicated brand.

Each model number record 704 may comprise text entries for model number720, appliance type 722 (e.g. DVD) and subtype 724 (e.g. Blu-ray),region 726, and service provider (e.g. cable MSO, satellite, etc.)together with corresponding phonetic representations 730 through 736. Asbefore, the data contained in the device type, subtype, region, andprovider entries may be utilized to refine model selection, for exampleas described in conjunction with step 410 of FIG. 4. Additionally, modelrecord 704 may also include a link 740 to an image of the applianceand/or a link 742 to an image of the original equipment remote control,again for possible use in refining a user's identification of his exactappliance model. As will be appreciated, not all of the above fields maybe populated in every model record. Finally, each model number record704 may contain a link 744 to a codeset record.

With reference to FIG. 7b , each code set record 706 may comprise aunique codeset identity number, a block of protocol and formattinginformation 752 which may describe the physical protocol requirementsfor transmitting the command data elements which comprise this codeset,including for example items such as carrier frequency, bit encoding,data frame size and structure, appliance address, parity or CRCrequirements, etc. Following block 752 may be a series of individualcommand function entries 754. Each entry may comprise a standardfunction ID 756, which may be a normalized tag indicative of thefunction or operation invoked by this command (i.e. so that within auniversal remote control system the same functionality may be mapped toa key regardless of any variations in appliance manufacturer-specificnomenclature, for example as may be seen in Table 2 above); a functionname 758 corresponding to the name by which that function is commonlyreferenced by this appliance's manufacturer together with its phoneticrepresentation 760; and command data 762 which, when transmitted usingthe protocol specifications of block 752, will command the appliance toperform the indicated action. In some embodiments, multiple instances offunction name 758 and associated phonetic representation 760 may bepresent to cater for synonyms and/or regional differences.

As will be appreciated, at step 412 of FIG. 4, all or part of theinformation contained in the identified codeset record may betransferred to the controlling device being configured. As appropriatefor a particular embodiment, such a transfer may comprise only thecodeset number 750 where it is determined that the required codeset isalready preloaded in the memory of the controlling device or a localappliance, or may comprise a full download of codeset number 750,protocol and formatting information 752, and all or a portion of thecommand data entries 762. Furthermore, in order to identifyuser-requested extended command functions, the phonetic representations758 corresponding to the command function entries of the codeset numbercorresponding to the currently configured appliance may be searched bythe speech recognition means, for example as illustrated at steps 604and 606 of FIG. 6, and the matching command data returned to therequesting controlling device as illustrated 610 of FIG. 6.

While various concepts have been described in detail, it will beappreciated by those skilled in the art that various modifications andalternatives to those concepts could be developed in light of theoverall teachings of the disclosure.

Further, while described in the context of functional modules andillustrated using block diagram format, it is to be understood that,unless otherwise stated to the contrary, one or more of the describedfunctions and/or features may be integrated in a single physical deviceand/or a software module, or one or more functions and/or features maybe implemented in separate physical devices or software modules. It willalso be appreciated that a detailed discussion of the actualimplementation of each module is not necessary for an enablingunderstanding of the invention. Rather, the actual implementation ofsuch modules would be well within the routine skill of an engineer,given the disclosure herein of the attributes, functionality, andinter-relationship of the various functional modules in the system.Therefore, a person skilled in the art, applying ordinary skill, will beable to practice the invention set forth in the claims without undue toexperimentation. It will be additionally appreciated that the particularconcepts disclosed are meant to be illustrative only and not limiting asto the scope of the invention which is to be given the full breadth ofthe appended claims and any equivalents thereof.

All patents cited within this document are hereby incorporated byreference in their entirety.

What is claimed is:
 1. A non-transitory, computer readable media havingstored thereon instructions wherein the instructions, when executed by aprocessing device of a controlling device, cause the controlling deviceto use voice data indicative of at least a type for and a brand of atarget appliance received via a microphone associated with thecontrolling device to directly identify within a library of codesetsstored in a memory of the controlling device at least one codeset thatis cross-referenced within the memory of the controlling device to thetype for and the brand of the target appliance and to cause the at leastone codeset to be used by the controlling device when commandingfunctional operations of the target appliance.
 2. The non-transitory,computer readable media as recited in claim 1, wherein the controllingdevice comprises a smart device.
 3. The non-transitory, computerreadable media as recited in claim 2, wherein the smart device comprisesa media rendering device and the target appliance comprises atelevision.
 4. The non-transitory, computer readable media as recited inclaim 3, wherein the at least one codeset is associated with a one of aninfrared, radio-frequency, point-to-point, or networked protocol bywhich commands are to be transmitted by the controlling device whencommanding functional operations of the target appliance.
 5. Thenon-transitory, computer readable media as recited in claim 2, whereinthe controlling device comprises one of a smart phone or a tabletcomputing device.
 6. The non-transitory, computer readable media asrecited in claim 5, wherein the at least one codeset is associated witha one of an infrared, radio-frequency, point-to-point, or networkedprotocol by which commands are to be transmitted by the controllingdevice when commanding functional operations of the target appliance. 7.The non-transitory, computer readable media as recited in claim 1,wherein the instructions cause the controlling device to further use amodel of the target appliance to directly identify within the library ofcodesets stored in the memory of the controlling device at least onecodeset that is cross-referenced within the memory of the controllingdevice to the type for, the brand of, and the model of the targetappliance.
 8. The non-transitory, computer readable media as recited inclaim 1, wherein the instructions prompt a user to identify a model ofthe target appliance for use in selecting a codeset from amongst aplurality of codesets directly identified within the library of codesetsstored in the memory of the controlling device that are cross-referencedwithin the memory of the controlling device to the type for and thebrand of the target appliance.
 9. The non-transitory, computer readablemedia as recited in claim 8, wherein the instructions cause the model ofthe target appliance to be received via use of the microphone.
 10. Thenon-transitory, computer readable media as recited in claim 1, whereinthe instructions prompt a user to identify an image representative ofthe target appliance for use in selecting a codeset from amongst aplurality of codesets directly identified within the library of codesetsstored in the memory of the controlling device that are cross-referencedwithin the memory of the controlling device to the type for and thebrand of the target appliance.
 11. The non-transitory, computer readablemedia as recited in 1, wherein the controlling device has a plurality offunction keys activatable to cause a transmission of a command to thetarget appliance and wherein the instructions cause the controllingdevice to use voice data indicative of a command to be assigned to afunction key of the controlling device to identify within the at leastone codeset command data that is cross-referenced to the command and tocause the command data of the at least one codeset to be used by thecontrolling device in response to the function key being subsequentlyactivated to cause a transmission of a command to the target device. 12.The non-transitory, computer readable media as recited in claim 1,wherein the instructions cause the controlling device to use voice dataindicative of a command to be transmitted from the controlling device toidentify within the at least one codeset command data that iscross-referenced to the command and to cause the command data of the atleast one codeset to be used to transmit a command to the targetappliance.
 13. The system as recited in claim 13, wherein theinstructions additionally use a location data when identifying the atleast one codeset that is cross-referenced to the brand of the targetappliance.
 14. The non-transitory, computer readable media as recited inclaim 1, wherein the instructions prompt a user to provide a locationdata to the controlling device for use in selecting a codeset fromamongst a plurality of codesets directly identified within the libraryof codesets stored in the memory of the controlling device that arecross-referenced within the memory of the controlling device to the typefor and the brand of the target appliance.
 15. The non-transitory,computer readable media as recited in claim 1, wherein the instructionscomprise a remote control app installed on the controlling device. 16.The non-transitory, computer readable media as recited in claim 15,wherein the controlling device comprises a smart phone.
 17. Thenon-transitory, computer readable media as recited in claim 15, whereinthe controlling device comprises a tablet computing device.